package com.student.dao;

import com.student.bean.Admin;

import java.awt.*;
import java.sql.Connection;

/**
 * 此接口是用来规范 针对于 admin 表的一些常用操作
 */
public interface AdminDAO {

    /**
     * @author wk
     * @Description 注册功能（向数据库插入管理者信息）
     * @Date 15:34 2022/3/3
     * @Param
     * @Return
     */

    int register(Connection connection, Admin admin);

    /**
     * @author wk
     * @Description 登录功能 （验证密码和账号）
     * @Date 15:36 2022/3/3
     * @Param
     * @Return
     */

    Admin login(Connection connection, String adminId, String password);


    /**
     * @author wk
     * @Description 找回密码
     * @Date 19:36 2022/3/3
     * @Param
     * @Return
     */

    String recover(Connection connection, String card, String phone);

    /**
     * @author wk
     * @Description 注销账户
     * @Date 21:00 2022/3/4
     * @Param
     * @Return
     */

    int unsubscribe(Connection connection, String card, String phone);

    /**
     *
     * 通过账号id，检查管理员是否存在
     *
     * @param connection 连接
     * @param adminId    管理员id
     * @return boolean
     */
    boolean checkAdminIsExistById(Connection connection,String adminId);

    /**
     * 通过身份证号，检查管理员是否存在
     *
     * @param connection 连接
     * @param card       身份证号
     * @return boolean
     */
    boolean checkAdminIsExistByCard(Connection connection,String card);

    /**
     * 通过手机号，检查管理员是否存在
     *
     * @param connection 连接
     * @param phone      电话
     * @return boolean
     */
    boolean checkAdminIsExistByPhone(Connection connection,String phone);

    /**
     * @author wk
     * @Description 根据管理员身份证号，获取管理员的信息
     * @Date 20:39 2022/3/4
     * @Param
     * @Return
     */

    Admin getAdminByCard(Connection connection, String card);

    /**
     * @author wk
     * @Description 根据管理员手机号，获取管理员的信息
     * @Date 20:39 2022/3/4
     * @Param
     * @Return
     */

    Admin getAdminByPhone(Connection connection, String phone);

}
